﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.ClassesSQLServer;
using Dados.Interfaces;
using Dados.ValueObjects;
using System.ComponentModel;
namespace Negocios
{
    [DataObject]
    public class LocadoraBOMetodos
    {
        private ILocadora iLocadoraDados;

        public LocadoraBOMetodos()
        {
            iLocadoraDados = new LocadoraSQLServer();
        }
        [DataObjectMethod(DataObjectMethodType.Insert,true)]
        public bool inserir(LocadoraBO lBO)
        {
            LocadoraVO lVO = new LocadoraVO();

            lVO.Nome = lBO.Nome;
            lVO.Site = lBO.Site;
            lVO.Telefone = lBO.Telefone;
            lVO.Email = lBO.Email;
            lVO.Endereco = lBO.Endereco;
           
            return (iLocadoraDados.Inserir(lVO) == 1);
        }
        [DataObjectMethod(DataObjectMethodType.Delete, true)]
        public bool remover(int id)
        {
            return iLocadoraDados.Remover(id) == 1;
        }
        [DataObjectMethod(DataObjectMethodType.Update, true)]
        public bool atualizar(LocadoraBO lBO)
        {
            LocadoraVO lVO = new LocadoraVO();

            lVO.Id = lBO.Id;
            lVO.Nome = lBO.Nome;
            lVO.Site = lBO.Site;
            lVO.Telefone = lBO.Telefone;
            lVO.Email = lBO.Email;
            lVO.Endereco = lBO.Endereco;

            return (iLocadoraDados.Atualizar(lVO) == 1);
        }
        [DataObjectMethod(DataObjectMethodType.Select, false)]
        public LocadoraBO consultar(int id)
        {
            LocadoraVO lVO = iLocadoraDados.Consultar(id);
            LocadoraBO lBO = new LocadoraBO();

            lBO.Id = lVO.Id;
            lBO.Nome = lVO.Nome;
            lBO.Site = lVO.Site;
            lBO.Telefone = lVO.Telefone;
            lBO.Email = lVO.Email;
            lBO.Endereco = lVO.Endereco;

            return lBO;
        }
        [DataObjectMethod(DataObjectMethodType.Select, true)]
        public List<LocadoraBO> consultaTodos()
        {
          
            List<LocadoraBO> lLocadoraBO = new List<LocadoraBO>();
            List<LocadoraVO> lLocadoraVO = (new LocadoraSQLServer()).ConsultaTodos();
            
                      foreach (LocadoraVO lVO in lLocadoraVO)
                      {
                          LocadoraBO lBO = new LocadoraBO();

                          lBO.Id = lVO.Id;
                          lBO.Nome = lVO.Nome;
                          lBO.Site = lVO.Site;
                          lBO.Telefone = lVO.Telefone;
                          lBO.Email = lVO.Email;
                          lBO.Endereco = lVO.Endereco;

                          lLocadoraBO.Add(lBO);
                      }
            
            return lLocadoraBO;

        }
    }
}
